package mx.unam.proteco.servicios;

import java.util.ArrayList;
import java.util.Date;
import javax.persistence.EntityManager;
import mx.unam.proteco.entidades.Departamento;
import mx.unam.proteco.entidades.Direccion;
import mx.unam.proteco.entidades.Empleado;
import mx.unam.proteco.entidades.Proyecto;

/**
 *
 * @author Juan Fco. Navarrete
 */

public class InitService
{

    public static void initDatabase(EntityManager em)
    {
        Departamento d1 = new Departamento();
        d1.setNombre("Planeación");
        d1.setEmpleados(new ArrayList<Empleado>());

        Departamento d2 = new Departamento();
        d2.setNombre("Programación");
        d2.setEmpleados(new ArrayList<Empleado>());

        Departamento d3 = new Departamento();
        d3.setNombre("Pruebas");
        d3.setEmpleados(new ArrayList<Empleado>());

        Direccion dir1 = new Direccion();
        dir1.setCalle("Miguel Laurent");
        dir1.setCiudad("Ciudad de México");
        dir1.setEstado("Distrito Federal");
        dir1.setPais("México");

        Direccion dir2 = new Direccion();
        dir2.setCalle("Pilares");
        dir2.setCiudad("Querataro");
        dir2.setEstado("Queretaro");
        dir2.setPais("México");

        Direccion dir4 = new Direccion();
        dir4.setCalle("Anaxagoras");
        dir4.setCiudad("Guadalajara");
        dir4.setEstado("Jalisco");
        dir4.setPais("México");

        Direccion dir5 = new Direccion();
        dir5.setCalle("Universidad");
        dir5.setCiudad("Ciudad de México");
        dir5.setEstado("Distrito Federal");
        dir5.setPais("México");

        Empleado e1 = new Empleado();
        e1.setNombres("Juan Francisco");
        e1.setApellidoPaterno("Navarrete");
        e1.setApellidoMaterno("Martinez");
        e1.setFechaContratacion(new Date(123456789L));
        e1.setProyectos(new ArrayList<Proyecto>());
        e1.setSalario(1000000d);

        Empleado e2 = new Empleado();
        e2.setNombres("Jorge");
        e2.setApellidoPaterno("Herrera");
        e2.setApellidoMaterno("Becerril");
        e2.setFechaContratacion(new Date(1222336789L));
        e2.setProyectos(new ArrayList<Proyecto>());
        e2.setSalario(50000d);

        Empleado e3 = new Empleado();
        e3.setNombres("Ana Luisa");
        e3.setApellidoPaterno("Aguilar");
        e3.setApellidoMaterno("Perez");
        e3.setFechaContratacion(new Date(923456789L));
        e3.setProyectos(new ArrayList<Proyecto>());
        e3.setSalario(250000d);

        Empleado e4 = new Empleado();
        e4.setNombres("Cecilia");
        e4.setApellidoPaterno("Hernandez");
        e4.setApellidoMaterno("Lopez");
        e4.setFechaContratacion(new Date(52673456789L));
        e4.setProyectos(new ArrayList<Proyecto>());
        e4.setSalario(500000d);

        Empleado e5 = new Empleado();
        e5.setNombres("Cesar");
        e5.setApellidoPaterno("Montero");
        e5.setApellidoMaterno("Escalante");
        e5.setFechaContratacion(new Date(3123456789L));
        e5.setProyectos(new ArrayList<Proyecto>());
        e5.setSalario(60000d);

        Proyecto p1 = new Proyecto();
        p1.setNombre("Encuestas");
        p1.setEmpleados(new ArrayList<Empleado>());
        p1.setComentarios(new ArrayList<String>());

        Proyecto p2 = new Proyecto();
        p2.setNombre("Biblioteca Digital");
        p2.setEmpleados(new ArrayList<Empleado>());
        p2.setComentarios(new ArrayList<String>());       

        e1.setDepartamento(d1);
        e2.setDepartamento(d1);
        e3.setDepartamento(d2);
        e4.setDepartamento(d2);
        e5.setDepartamento(d3);

        d1.setGerente(e1);
        d2.setGerente(e3);
        d3.setGerente(e5);

        d1.getEmpleados().add(e1);
        d1.getEmpleados().add(e1);
        d2.getEmpleados().add(e3);
        d2.getEmpleados().add(e4);
        d3.getEmpleados().add(e5);

        e1.setDireccion(dir1);
        e2.setDireccion(dir2);
        e3.setDireccion(dir1);
        e4.setDireccion(dir4);
        e5.setDireccion(dir5);

        e1.getProyectos().add(p1);
        e2.getProyectos().add(p1);
        e3.getProyectos().add(p1);
        e4.getProyectos().add(p2);
        e5.getProyectos().add(p2);

        p1.getEmpleados().add(e1);
        p1.getEmpleados().add(e2);
        p1.getEmpleados().add(e3);
        p2.getEmpleados().add(e4);
        p2.getEmpleados().add(e5);

        p1.getComentarios().add("Comentario 1");
        p1.getComentarios().add("Comentario 2");
        p1.getComentarios().add("Comentario 3");
        p2.getComentarios().add("Comentario 1");
        p2.getComentarios().add("Comentario 1");

        em.persist(e1);
        em.persist(e2);
        em.persist(e3);
        em.persist(e4);
        em.persist(e5);

        em.persist(d1);
        em.persist(d2);
        em.persist(d3);

        em.persist(dir1);
        em.persist(dir2);
        em.persist(dir4);
        em.persist(dir5);

        em.persist(p1);
        em.persist(p2);
    }
}
